export default defineConfig({
  plugins: [vue()],
  build: {
    rollupOptions: {
      // 控制打包后的结构
      output: {
        entryFileNames: 'js/[name].[hash].js',
        chunkFileNames: 'js/[name].[hash].js',
        assetFileNames(assetInfo) {
          if(assetInfo.name.endsWith('.css')) {
            return 'css/[name].[hash].css'
          }
          if(['.png','.jpg','.jpeg','.svg','.gif'].some(ext => assetInfo.name.endsWith(ext) )) {
            return 'img/[name].[hash].[ext]'
          }
          return 'assets/[name].[hash].[ext]'
        }
      },
      // 在vite中手动分包的配置
      manualChunks: {
        // 配置哪些组件打包成一个，也可以分开，文件指纹基本不变
        chunk: ['loadash','vue']
      },
      // 还可以将所有node_modules包打包到一起
      manualChunks(id) {
        if(id.includes('node_modules')) {
          return 'vendor'
        }
      }
    },
    // 小于4kb的图片会转成base64
    assertsInlineLimit: 4096
  }
})